package com.yfp.operation.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yfp.common.core.web.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 *
 * @version 1.0
 * @date 2024-12-30 16:44
 */
@Data
public class PrizeVO extends BaseEntity {

    /**
     * 名称
     */
    @Schema(description = "名称")
    private String name;

    /**
     * 名城市称
     */
    @Schema(description = "城市名称")
    private String cityName;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 类型
     */
    @Schema(description = "类型 1满减券2折扣券3单品券4新人券5霸王免单券6实物券 87活动88礼包")
    private Integer type;

    /**
     * 优惠内容
     */
    @Schema(description = "优惠内容")
    private BigDecimal discounts;

    /**
     * 剩余数量
     */
    @Schema(description = "剩余数量")
    private Long surplusCount;

    /**
     * id
     */
    @Schema(description = "id")
    private Long id;

    /**
     * 限领次数
     */
    @Schema(description = "限领次数")
    private Integer receiveCount;

    /**
     * 发放数量
     */
    @Schema(description = "发放数量")
    private Integer grantNum;

    /**
     * 库存
     */
    @Schema(description = "库存")
    private Integer repertoryNum;

    /**
     * 奖品总中奖率
     */
    @Schema(description = "奖品总中奖率")
    private BigDecimal winningRate;

    /**
     * 优惠券数量
     */
    @Schema(description = "优惠券数量")
    private Long couponNum;

    /**
     * 领取n天有效
     */
    private Integer validDays;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date endTime;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date startTime;

    /**
     * 中奖数
     */
    private Integer winningNum;

    /**
     * 未中奖数
     */
    private Integer lotteryCount;

    /**
     * 发放数量
     */
    private Integer totalStock;

    /**
     * 库存
     */
    private Integer remainingStock;
}
